Computing devices, such as servers, routers, computers, and other devices having processor logic and memory may have an operating system and one or more applications installed thereon. However, the operating systems, and the applications first have to be loaded or deployed onto the computing device. A computing device with no functional operating system may be referred to as a bare metal computing device. A bare metal computing device can have firmware, such as a Basic Input/Output System (BIOS) that functions to identify, test, and initialize system devices such as displays, drives, peripherals, and other hardware. The BIOS sets the hardware into a known state, so that the computing device can be configured with the operating systems and applications.
Different approaches exist for configuring a computing device. Desired-state software management models may be used to configure various computing devices such as computers and servers with operating systems and applications. The desired-state management model usually is built well before deployment of an operating system to a computer system, and may be based on a set of software developer-selected use cases. A task-based configuration approach uses a series of discrete steps to at least partly configure a computing device. Because the desired-state model typically is developed well before deployment of operating systems and applications, it may conflict with a task-based approach where late-binding, ad hoc configuration decisions are common.